;;; Merge Sort 

(defun mergesort (arr)
  (let* ((n (array-total-size arr))
          mid (\ n 2)
 	  b (subseq arr 0 (- mid 1))
          c (subseq arr mid n -1)
          b-sorted (mergesort b)
	  c-sorted (mergesort c))
    (merge b-sorted c-sorted arr)))
     
